package upc.jfactory.scp.form;


import com.icesoft.faces.component.ext.RowSelectorEvent;
import java.util.ArrayList;
import java.util.List;

import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;
import upc.jfactory.scp.bl.facade.OfertaEmpresaFacade;
import upc.jfactory.scp.entidad.PuestoOfertado;
/**
 *
 * @author Diego
 */
public class FormMisOfertas {
    List<PuestoOfertado> ofertas = new ArrayList<PuestoOfertado>();
    private PuestoOfertado puesto = new PuestoOfertado();

//para el popUp
    private Boolean isPopUpVisible;
    private Boolean isPopUp2Visible;
    private Boolean btnVisible;
    private String texto;
    //modo de visibilidad del boton y manejo del Popup
    private int modo;

    public FormMisOfertas(){
        isPopUpVisible = false;
        isPopUp2Visible=false;
        texto="Esta seguro de eliminar esta oferta?";
        modo=1;
OfertaEmpresaFacade ofemprfachada= OfertaEmpresaFacade.getInstance();
    ofertas=ofemprfachada.PuestosOfertadosEmpresa();
    }
public void closePopup() {
        isPopUpVisible=false;
    }

    public List<PuestoOfertado> getOfertas() {
        return ofertas;
    }

    public void setOfertas(List<PuestoOfertado> ofertas) {
        this.ofertas = ofertas;
    }


    public PuestoOfertado getPuesto() {
        return puesto;
    }

    public void setPuesto(PuestoOfertado puesto) {
        this.puesto = puesto;
    }


    public void openPopup() {


         isPopUpVisible=true;
         btnVisible=true;

    }

      public void closePopup2() {
        isPopUp2Visible=false;
    }

    public void openPopup2() {

         isPopUp2Visible=true;
    }

    public Boolean getBtnVisible() {
        return btnVisible;
    }
public String Eliminar(){
    if (modo==1){
          try{
   OfertaEmpresaFacade ofertafachada= OfertaEmpresaFacade.getInstance();
    ofertafachada.Eliminar(puesto.getIdPuestoOfertado());
    texto = "Se elimino satisfactoriamente";
         modo=2;
         btnVisible=false;
         }
    catch (Exception ex){
texto= "No se pudo eliminar la oferta laboral.";
    }
    return "eliminar";
  }else
    {
 closePopup();
                return CancelarEliminar();
  }

  }
 public String CancelarEliminar()
     {
         FacesContext context = javax.faces.context.FacesContext.getCurrentInstance();
         HttpSession session = (HttpSession) context.getExternalContext().getSession(false);
         session.removeAttribute("FormMisOfertas");
         return "eliminar";
     }
 public String ModificarOferta(){
    OfertaEmpresaFacade ofertafachada= OfertaEmpresaFacade.getInstance();
    return ofertafachada.ModificarOferta(puesto.getIdPuestoOfertado());
 }
public String accionareliminar(){

      FacesContext context = FacesContext.getCurrentInstance();
          modo=1;
      texto="Esta seguro de eliminar esta oferta?";
      btnVisible=true;
      

      if(puesto.isSelected()){
      openPopup();
        }else {

      texto= "No ha seleccionado una oferta laboral";
                openPopup2();
        }

              return "eliminar";
   }
    public void setBtnVisible(Boolean btnVisible) {
        this.btnVisible = btnVisible;
    }

    public Boolean getIsPopUp2Visible() {
        return isPopUp2Visible;
    }

    public void setIsPopUp2Visible(Boolean isPopUp2Visible) {
        this.isPopUp2Visible = isPopUp2Visible;
    }

    public Boolean getIsPopUpVisible() {
        return isPopUpVisible;
    }

    public void setIsPopUpVisible(Boolean isPopUpVisible) {
        this.isPopUpVisible = isPopUpVisible;
    }

    public int getModo() {
        return modo;
    }

    public void setModo(int modo) {
        this.modo = modo;
    }

    public String getTexto() {
        return texto;
    }

    public void setTexto(String texto) {
        this.texto = texto;
    }

public void setPostulacionSeleccionar(RowSelectorEvent ev){
puesto = null;

        for (PuestoOfertado oferta : ofertas) {
            if(oferta.isSelected()==true)
            {
                puesto = oferta;
                System.out.println(puesto.getIdPuestoOfertado());
            }
        }
}
}
